Keep prereleases out of stable package channels#155
Conversation
Sensitive Change Detection (shadow mode)This PR modifies control-plane files:
|
There was a problem hiding this comment.
Pull request overview
This PR adjusts the release pipeline so SemVer prerelease tags (e.g., v4.0.0-beta1, v4.1.0-rc.1) still generate GitHub release artifacts for testers, but do not flow into stable package-manager upgrade channels (Homebrew/Scoop/AUR) or become GitHub “latest”.
Changes:
- Configure GoReleaser to auto-mark prereleases and avoid publishing Homebrew/Scoop updates for prerelease tags.
- Update the GitHub Actions release workflow to skip the AUR publish job for prerelease tags.
- Document the stable vs prerelease release flow in
RELEASING.md.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
RELEASING.md |
Documents prerelease intent/behavior and clarifies which channels are stable-only. |
.goreleaser.yaml |
Adds prerelease/latest behavior and skips Homebrew/Scoop uploads for prerelease tags. |
.github/workflows/release.yml |
Skips AUR publishing when the tag indicates a prerelease. |
Tip
If you aren't ready for review, convert to a draft PR.
Click "Convert to draft" or run gh pr ready --undo.
Click "Ready for review" or run gh pr ready to reengage.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Summary
This keeps prerelease tags out of the normal package-manager upgrade path while still producing GitHub release artifacts for technical testers.
A stable tag like
v4.0.0still behaves as a normal release. A prerelease tag likev4.0.0-beta1is treated as a tester-only prerelease unless someone explicitly downloads/installs it.Surface behavior examples
v4.0.0stable tagv4.0.0-beta1prerelease tag.deb, and.rpmartifacts.releases/latest, so it can installv4.0.0.releases/latest; testers must download assets explicitly.basecamp/tap/fizzy;brew upgrade fizzycan move users tov4.0.0.skip_upload: auto), sobrew upgrade fizzystays on stable.fizzymanifest.skip_upload: auto), so normal Scoop upgrades stay on stable.fizzy-clipackage ifAUR_KEYis configured.Changes
release.prerelease: auto.release.make_latestfalse for prerelease tags.skip_upload: autofor Homebrew cask publishing.skip_upload: autofor Scoop manifest publishing.-).RELEASING.md.Validation
goreleaser checkactionlint .github/workflows/release.yml.goreleaser.yamland.github/workflows/release.ymlgit diff --checkSummary by cubic
Keep prerelease tags out of stable package channels while still shipping GitHub prerelease assets for testers. Stable tags install normally; prerelease tags like
v4.0.0-beta1are not marked latest and do not updateHomebrew,Scoop, or AUR.release.prerelease: autoand templatemake_latestto false for prerelease tags inGoReleaser.skip_upload: autotohomebrew_casksandscoopsso stablebasecamp/homebrew-tapmanifests aren’t updated on prereleases.!contains(github.ref_name, '-')) in the release workflow.RELEASING.md.Written for commit d1ad54b. Summary will update on new commits. Review in cubic